%ifndef __NASMX_WINMM_INC__
%define __NASMX_WINMM_INC__

IMPORT CloseDriver, 12
IMPORT DefDriverProc, 20
IMPORT DriverCallback, 28
IMPORT DrvGetModuleHandle, 4
IMPORT GetDriverModuleHandle, 4
IMPORT MigrateAllDrivers, 0
IMPORT MigrateSoundEvents, 0
IMPORT NotifyCallbackData, 20
IMPORT OpenDriver, 12
IMPORT PlaySoundA, 12
IMPORT PlaySoundW, 12
IMPORT SendDriverMessage, 16
IMPORT WOW32DriverCallback, 28
IMPORT WOW32ResolveMultiMediaHandle, 24
IMPORT WOWAppExit, 4
IMPORT WinmmLogoff, 0
IMPORT WinmmLogon, 4
IMPORT aux32Message, 20
IMPORT auxGetDevCapsA, 12
IMPORT auxGetDevCapsW, 12
IMPORT auxGetNumDevs, 0
IMPORT auxGetVolume, 8
IMPORT auxOutMessage, 16
IMPORT auxSetVolume, 8
IMPORT gfxAddGfx, 20
IMPORT gfxBatchChange, 24
IMPORT gfxCreateGfxFactoriesList, 8
IMPORT gfxCreateZoneFactoriesList, 4
IMPORT gfxDestroyDeviceInterfaceList, 4
IMPORT gfxEnumerateGfxs, 12
IMPORT gfxLogoff, 0
IMPORT gfxLogon, 4
IMPORT gfxModifyGfx, 8
IMPORT gfxOpenGfx, 8
IMPORT gfxRemoveGfx, 4
IMPORT joy32Message, 20
IMPORT joyConfigChanged, 4
IMPORT joyGetDevCapsA, 12
IMPORT joyGetDevCapsW, 12
IMPORT joyGetNumDevs, 0
IMPORT joyGetPos, 8
IMPORT joyGetPosEx, 8
IMPORT joyGetThreshold, 8
IMPORT joyReleaseCapture, 4
IMPORT joySetCapture, 16
IMPORT joySetThreshold, 8
IMPORT mci32Message, 20
IMPORT mciDriverNotify, 12
IMPORT mciDriverYield, 4
IMPORT mciExecute, 4
IMPORT mciFreeCommandResource, 4
IMPORT mciGetCreatorTask, 4
IMPORT mciGetDeviceIDA, 4
IMPORT mciGetDeviceIDFromElementIDA, 8
IMPORT mciGetDeviceIDFromElementIDW, 8
IMPORT mciGetDeviceIDW, 4
IMPORT mciGetDriverData, 4
IMPORT mciGetErrorStringA, 12
IMPORT mciGetErrorStringW, 12
IMPORT mciGetYieldProc, 8
IMPORT mciLoadCommandResource, 12
IMPORT mciSendCommandA, 16
IMPORT mciSendCommandW, 16
IMPORT mciSendStringA, 16
IMPORT mciSendStringW, 16
IMPORT mciSetDriverData, 8
IMPORT mciSetYieldProc, 12
IMPORT mid32Message, 20
IMPORT midiConnect, 12
IMPORT midiDisconnect, 12
IMPORT midiInAddBuffer, 12
IMPORT midiInClose, 4
IMPORT midiInGetDevCapsA, 12
IMPORT midiInGetDevCapsW, 12
IMPORT midiInGetErrorTextA, 12
IMPORT midiInGetErrorTextW, 12
IMPORT midiInGetID, 8
IMPORT midiInGetNumDevs, 0
IMPORT midiInMessage, 16
IMPORT midiInOpen, 20
IMPORT midiInPrepareHeader, 12
IMPORT midiInReset, 4
IMPORT midiInStart, 4
IMPORT midiInStop, 4
IMPORT midiInUnprepareHeader, 12
IMPORT midiOutCacheDrumPatches, 16
IMPORT midiOutCachePatches, 16
IMPORT midiOutClose, 4
IMPORT midiOutGetDevCapsA, 12
IMPORT midiOutGetDevCapsW, 12
IMPORT midiOutGetErrorTextA, 12
IMPORT midiOutGetErrorTextW, 12
IMPORT midiOutGetID, 8
IMPORT midiOutGetNumDevs, 0
IMPORT midiOutGetVolume, 8
IMPORT midiOutLongMsg, 12
IMPORT midiOutMessage, 16
IMPORT midiOutOpen, 20
IMPORT midiOutPrepareHeader, 12
IMPORT midiOutReset, 4
IMPORT midiOutSetVolume, 8
IMPORT midiOutShortMsg, 8
IMPORT midiOutUnprepareHeader, 12
IMPORT midiStreamClose, 4
IMPORT midiStreamOpen, 24
IMPORT midiStreamOut, 12
IMPORT midiStreamPause, 4
IMPORT midiStreamPosition, 12
IMPORT midiStreamProperty, 12
IMPORT midiStreamRestart, 4
IMPORT midiStreamStop, 4
IMPORT mixerClose, 4
IMPORT mixerGetControlDetailsA, 12
IMPORT mixerGetControlDetailsW, 12
IMPORT mixerGetDevCapsA, 12
IMPORT mixerGetDevCapsW, 12
IMPORT mixerGetID, 12
IMPORT mixerGetLineControlsA, 12
IMPORT mixerGetLineControlsW, 12
IMPORT mixerGetLineInfoA, 12
IMPORT mixerGetLineInfoW, 12
IMPORT mixerGetNumDevs, 0
IMPORT mixerMessage, 16
IMPORT mixerOpen, 20
IMPORT mixerSetControlDetails, 12
IMPORT mmDrvInstall, 16
IMPORT mmGetCurrentTask, 0
IMPORT mmTaskBlock, 4
IMPORT mmTaskCreate, 12
IMPORT mmTaskSignal, 4
IMPORT mmTaskYield, 0
IMPORT mmioAdvance, 12
IMPORT mmioAscend, 12
IMPORT mmioClose, 8
IMPORT mmioCreateChunk, 12
IMPORT mmioDescend, 16
IMPORT mmioFlush, 8
IMPORT mmioGetInfo, 12
IMPORT mmioInstallIOProcA, 12
IMPORT mmioInstallIOProcW, 12
IMPORT mmioOpenA, 12
IMPORT mmioOpenW, 12
IMPORT mmioRead, 12
IMPORT mmioRenameA, 16
IMPORT mmioRenameW, 16
IMPORT mmioSeek, 12
IMPORT mmioSendMessage, 16
IMPORT mmioSetBuffer, 16
IMPORT mmioSetInfo, 12
IMPORT mmioStringToFOURCCA, 8
IMPORT mmioStringToFOURCCW, 8
IMPORT mmioWrite, 12
IMPORT mmsystemGetVersion, 0
IMPORT mod32Message, 20
IMPORT mxd32Message, 20
IMPORT sndPlaySoundA, 8
IMPORT sndPlaySoundW, 8
IMPORT tid32Message, 20
IMPORT timeBeginPeriod, 4
IMPORT timeEndPeriod, 4
IMPORT timeGetDevCaps, 8
IMPORT timeGetSystemTime, 8
IMPORT timeGetTime, 0
IMPORT timeKillEvent, 4
IMPORT timeSetEvent, 20
IMPORT waveInAddBuffer, 12
IMPORT waveInClose, 4
IMPORT waveInGetDevCapsA, 12
IMPORT waveInGetDevCapsW, 12
IMPORT waveInGetErrorTextA, 12
IMPORT waveInGetErrorTextW, 12
IMPORT waveInGetID, 8
IMPORT waveInGetNumDevs, 0
IMPORT waveInGetPosition, 12
IMPORT waveInMessage, 16
IMPORT waveInOpen, 24
IMPORT waveInPrepareHeader, 12
IMPORT waveInReset, 4
IMPORT waveInStart, 4
IMPORT waveInStop, 4
IMPORT waveInUnprepareHeader, 12
IMPORT waveOutBreakLoop, 4
IMPORT waveOutClose, 4
IMPORT waveOutGetDevCapsA, 12
IMPORT waveOutGetDevCapsW, 12
IMPORT waveOutGetErrorTextA, 12
IMPORT waveOutGetErrorTextW, 12
IMPORT waveOutGetID, 8
IMPORT waveOutGetNumDevs, 0
IMPORT waveOutGetPitch, 8
IMPORT waveOutGetPlaybackRate, 8
IMPORT waveOutGetPosition, 12
IMPORT waveOutGetVolume, 8
IMPORT waveOutMessage, 16
IMPORT waveOutOpen, 24
IMPORT waveOutPause, 4
IMPORT waveOutPrepareHeader, 12
IMPORT waveOutReset, 4
IMPORT waveOutRestart, 4
IMPORT waveOutSetPitch, 8
IMPORT waveOutSetPlaybackRate, 8
IMPORT waveOutSetVolume, 8
IMPORT waveOutUnprepareHeader, 12
IMPORT waveOutWrite, 12
IMPORT wid32Message, 20
IMPORT winmmDbgOut
IMPORT winmmSetDebugLevel, 4
IMPORT wod32Message, 20

%ifdef UNICODE

%define PlaySound PlaySoundW
%define auxGetDevCaps auxGetDevCapsW
%define joyGetDevCaps joyGetDevCapsW
%define mciGetDeviceID mciGetDeviceIDW
%define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW
%define mciGetErrorString mciGetErrorStringW
%define mciSendCommand mciSendCommandW
%define mciSendString mciSendStringW
%define midiInGetDevCaps midiInGetDevCapsW
%define midiInGetErrorText midiInGetErrorTextW
%define midiOutGetDevCaps midiOutGetDevCapsW
%define midiOutGetErrorText midiOutGetErrorTextW
%define mixerGetControlDetails mixerGetControlDetailsW
%define mixerGetDevCaps mixerGetDevCapsW
%define mixerGetLineControls mixerGetLineControlsW
%define mixerGetLineInfo mixerGetLineInfoW
%define mmioInstallIOProc mmioInstallIOProcW
%define mmioOpen mmioOpenW
%define mmioRename mmioRenameW
%define mmioStringToFOURCC mmioStringToFOURCCW
%define sndPlaySound sndPlaySoundW
%define waveInGetDevCaps waveInGetDevCapsW
%define waveInGetErrorText waveInGetErrorTextW
%define waveOutGetDevCaps waveOutGetDevCapsW
%define waveOutGetErrorText waveOutGetErrorTextW

%else  ;// ANSI

%define PlaySound PlaySoundA
%define auxGetDevCaps auxGetDevCapsA
%define joyGetDevCaps joyGetDevCapsA
%define mciGetDeviceID mciGetDeviceIDA
%define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA
%define mciGetErrorString mciGetErrorStringA
%define mciSendCommand mciSendCommandA
%define mciSendString mciSendStringA
%define midiInGetDevCaps midiInGetDevCapsA
%define midiInGetErrorText midiInGetErrorTextA
%define midiOutGetDevCaps midiOutGetDevCapsA
%define midiOutGetErrorText midiOutGetErrorTextA
%define mixerGetControlDetails mixerGetControlDetailsA
%define mixerGetDevCaps mixerGetDevCapsA
%define mixerGetLineControls mixerGetLineControlsA
%define mixerGetLineInfo mixerGetLineInfoA
%define mmioInstallIOProc mmioInstallIOProcA
%define mmioOpen mmioOpenA
%define mmioRename mmioRenameA
%define mmioStringToFOURCC mmioStringToFOURCCA
%define sndPlaySound sndPlaySoundA
%define waveInGetDevCaps waveInGetDevCapsA
%define waveInGetErrorText waveInGetErrorTextA
%define waveOutGetDevCaps waveOutGetDevCapsA
%define waveOutGetErrorText waveOutGetErrorTextA

%endif  ;// UNICODE

%endif  ;// __NASMX_WINMM_INC__
